/* 继承的本质和原理
 * 继承的本质：1、代码的复用    2、
 *
 * 类和类之间的关系：
 * 1、组合：a part of...
 * 2、继承：a kind of...
 *
 * 访问符权限：
 * public 用于指定类中的成员可以被类的外部代码访问。公有成员可以被类外部的任何代码（包括类的实例）访问。
 * private 用于指定类中的成员只能被类的内部代码访问。私有成员对外部代码是不可见的，只有类内部的成员函数可以访问私有成员。
 * protected 用于指定类中的成员可以被类的派生类访问。受保护成员对外部代码是不可见的，但可以在派生类中被访问。
 * 总结：
 * 1、外部只能访问对象public的成员，protected和private的成员无法直接访问；
 * 2、在继承结构中，派生类从基类可以继承过来private的成员，但派生类却无法直接访问；
 * 3、protected和private的区别：
 * 在基类中定义的成员，想被派生类访问，但不想被外部访问，那么在基类中，把相关成员定义成protected；
 * 如果派生类和外部都不打算访问，那么在基类中，就把相关成员定义成private。
 *
 * 默认的继承方式是什么？
 * 要看派生类是用class定义的，还是用struct定义的。
 * class定义派生类，默认继承方式就是private；
 * struct定义派生类，默认继承方式是public。
 * 
 * */